查看原文
其他

Spring Boot 容器化部署 - Docker

SpringForAll社区 SpringForAll社区 2021-05-26
点击上方☝SpringForAll社区,轻松关注!
及时获取有趣有料的技术文章


2013年发布至今, Docker 一直广受瞩目,被认为可能会改变软件行业。


但是,许多人并不清楚 Docker 到底是什么,要解决什么问题,好处又在哪里?本文就来详细解释,帮助大家理解它,还带有简单易懂的实例,教你如何将它用于日常开发。

▶ 容器化运行的三要素

  • 基础环境:JDK

  • 应用:Spring Boot 应用 jar 包

  • 外部配置:Spring Boot 配置参数

▶ 选取合适的基础镜像

  • https://hub.docker.com/_/openjdk

  • https://hub.docker.com/_/java

▶ 构建 Docker 镜像

1、Maven 打包项目

1mvn clean package

2、在项目根目录下添加 Dockerfile

1FROM openjdk:8-jre-alpine
2
3ENV TZ="Asia/Shanghai" HOME="/root" JVM_PARAMS=" " SPRING_PARAMS=" "
4
5WORKDIR ${HOME}
6
7ADD target/*.jar ${HOME}/server.jar
8
9EXPOSE 8080
10
11CMD java $JVM_PARAMS -Djava.security.egd=file:/dev/./urandom -jar ${HOME}/server.jar $SPRING_PARAMS

3、构建镜像

1docker build -t <镜像名> .

▶ 部署服务

1、简单启动

1docker run -d --name <容器名> -p 8080:8080 <镜像名>

2、配置 JVM

1docker run -d --name <容器名> -p 8080:8080 -e JVM_PARAMS="-Xmx21824M -Xms21824M" <镜像名>

3、配置额外的 Spring Boot 参数

1docker run -d --name <容器名> -p 8080:8080 -e JVM_PARAMS="-Xmx21824M -Xms21824M" -e SPRING_PARAMS="--spring.profiles.active=prod" <镜像名>

打开浏览器,或者使用 curl 访问地址 http://localhost:8080

▶ Github Demo URL

  • https://github.com/ChinaSilence/spring-boot-demos/tree/master/50%20-%20deploy%20by%20docker

问题来了,请问诸位你们项目中目前在使用Docker吗?



● SpringBot中教你手把手配置 https

● Spring Boot 日志处理你还在用Logback?

● 【双11狂欢的背后】微服务注册中心如何承载大型系统的千万级访问?

● Spring Boot 新一代监控你该这么玩

● Spring Boot 异常处理

● Spring Boot 配置 - 配置信息加密

● 拒绝黑盒应用-Spring Boot 应用可视化监控

● 并发Bug之源有三,请睁大眼睛看清它们


如有收获,请帮忙转发,您的鼓励是作者最大的动力,谢谢!


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存